package cycles.util.jdbc.orm;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 指示一个类是否为数据库表的映射类及注解的模式<br />
 * 
 * @author cycles
 * 
 */

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface DBTable {
	/**
	 * 对应表名，不提供默认名
	 * 
	 * @return
	 */
	public String value();

	/**
	 * 主键字段名称
	 * @return
	 */
	public String key() default "id";
	/**
	 * 主键类型，默认为用户自定义主键
	 * 
	 * @return
	 */
	public boolean autokey() default false;

	/**
	 * 
	 * 字段是否是在父类中定义的，目前只支持最多向上两层，即此值只能是0或1或2
	 * 
	 * @return
	 */
	public int inheritLevel() default 0;
}
